docker常用命令& 3种docker日志查看 |
您所在的位置:网站首页 › nginx grep日志条数 › docker常用命令& 3种docker日志查看 |
一、概念
理念:容器化,把应用打包 定义:docker是一个开源的应用容器引擎,可以把任何应用以及他们的依赖包打包到一个 轻量级、可移植的容器中,然后发布到流行的Linux机器上,实现虚拟化。 VM和docker区别: VM结构:server-》host OS -》hypervisor -> Guest OS -> Bins/libs ->app docker : server-》host OS -》-> docker engine ->bins/libs ->app 从以上结构可以看出,hostOS直接安装一个docker engine,就可以从远程仓库【Registry】只中下载对应软件的docker镜像【images】,然后docker镜像运行起来就是一个容器【Containers】,这个容器像一个正常的操作系统一样,可以读写文件 并且运行起来的docker镜像,在删除和迁移的时候,也非常方便。 二、docker架构图hostOS在安装完docker之后,会启动一个docker守护进程【docker daemon】,这个守护进程相当于docker命令行的解释器【类似于shell】,用户只要在hostOS的shell中执行docker对应的命令,就可以完成相应的操作。 三、docker命令现在假设你已经安装好docker了。 1、验证是否安装成功 $ docker info2、docker需要有自己的守护进程才能运行自己的命令,如果你没有的话,可以这样启动 用systemctl 或者service启动 $ sudo systemctl start docker $ sudo service docker start3、列出本机所有的docker images $ docker images4、下载并运行自己的镜像,假设我们现在下载一个hello-world $ docker image pull hello-world #下载 $ docker run -d -p 8080:80 hello-world #运行 -p 端口映射 -d守护进程 $ docker run -it ubuntu /bin/bash # -i 交互模式 -t 终端 使用Ubuntu镜像启动一个容器5、查看在运行的container $ docker ps6、运行失败,要删除原来的container,重新运行 $docker rm hello-world $docker rmi [imagesName] #刪除鏡像文件 $docker container kill [containerID] #手動停止容器可以先在 Docker官方仓库 docker hub中搜索一下想要用的images https://hub.docker.com ,获取他对应的文件名称路径,然后在用 pull 下载 7、把host主机中的文件和容器相互拷贝 $docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 $docker cp 宿主机的相应路径 容器名:要拷贝的文件在容器里面的路径8、服务运行之后,产生的文件需要保存下来,但是直接停止container,一般来说是不会在容器中保存产生的文件的。这时候需要先commit,把文件保存下来,生成新的镜像 $docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 -a 提交镜像作者 -m 提交时说明文字 a404c6c174a2 原imagesID 四、查看docker日志注意:docker有关的命令都要有管理员权限,可以把用户添加到管理员组,或者每次都接sudo 1、直接进入该容器,找到对应日志 $ sudo docker exec -it a95cee23942d /bin/bash #在镜像a95cee23942d中执行/bin/bash root@a95cee23942d:/# ls bin boot dev etc home lib lib64 logs media mnt opt proc requirements.txt root run sbin srv sys tmp usr var #进入该container之后,就直接找到 /var/logs查看了docker logs是根据containers而创建的 2、在主机中 ,实时查看docker容器日志 $sudo docker logs -f -t --tail 行数 容器名[containerID] -f 按日志输出 -t 显示时间戳3、在主机中 ,docker容器的日志目录 1、查看容器详细信息 $docker inspect 7a20f9671dbd 2、通过详细信息找到LogPath,那么它就在主机的目录结构下面 "LogPath": "/var/lib/docker/containers/7a20f9671dbd972d1e94355c15b74236e36a9eb72da4636cb7e996e1a9cdd40c/7a20f9671dbd972d1e94355c15b74236e36a9eb72da4636cb7e996e1a9cdd40c-json.log" 3、用less 或者cat查看日志 $ sudo less /var/lib/docker/containers/7a20f9671dbd972d1e94355c15b74236e36a9eb72da4636cb7e996e1a9cdd40c/7a20f9671dbd972d1e94355c15b74236e36a9eb72da4636cb7e996e1a9cdd40c-json.log 五、定制镜像,并推送到 Registry --> dockerfile定义: Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 1、dockerfile 语法 2、docker存储 :镜像分层 dockerfile中每一行都产生一个新层 已经存在的镜像:只读 运行起来,就是可读可写的层 分层技术,在有层共享的时候,存储压力会小很多 3、dockerfile 创建一个 images $docker build -t hello:tag . # hello:tag 容器名:标签; . 是上下文,把该路径里面的所有东西打包成hello【images】4、推送到远程registry,公共【Docker hub】或私人【需要另外购买】 首先得先注册,然后在登录,最后推送 $docker login # 输入用户名和密码即可 $docker push hello/ubuntu:v2.4 #添加tag是为了在镜像分层上传时候,只要上传新增加的就可以了,如果想上传全部镜像层,不添加tag即可 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |